package com.ea.common.parent.model;

import java.io.Serializable;

import com.baomidou.mybatisplus.plugins.Page;
import com.ea.modular.model.sys.ShiroUser;




/**
 * model基础支持类
 * @author jun
 *
 */
public abstract class BaseModel<T> implements Serializable{

	private static final long serialVersionUID = 1L;

	/**
	 * 实体编号
	 */
	protected String id;
	
	/**
	 * 当前用户
	 */
	protected ShiroUser currentUser;
	
	/**
	 * 当前实体分页对象
	 */
	protected Page<T> page;
	



	/**
	 * 是否是新记录（默认:false）,调用setIsNewRecord（）设置新记录，使自定义ID、
	 * 设置为true后强制执行插入sql语句,ID不会自动生成，需要手动传入
	 */
	protected boolean isNewRecord=false;

    /**
     * 插入之前执行方法,子类方法
     */
	public abstract void preInsert();
	/**
	 * 更新之前执行方法，子类实现
	 */
	public abstract void preUpdate();
	public BaseModel() {
		super();
	}


	public BaseModel(String id) {
		super();
		this.id = id;
	}


	public String getId() {
		return id;
	}


	public void setId(String id) {
		this.id = id;
	}


	public ShiroUser getCurrentUser() {
		return currentUser;
	}


	public void setCurrentUser(ShiroUser currentUser) {
		this.currentUser = currentUser;
	}


	public boolean isNewRecord() {
		return isNewRecord;
	}


	public void setNewRecord(boolean isNewRecord) {
		this.isNewRecord = isNewRecord;
	}
	
	
	public Page<T> getPage() {
		return page;
	}
	
	public void setPage(Page<T> page) {
		this.page = page;
	}


	/**
	 * 删除标识（0：正常,1：已经删除）
	 */
	public static final String DEL_FLAG_NORMAL="0";
	public static final String DEL_FLAG_DELETE="1";
	
}
